package cn.sinonet.mb.message;

import java.util.List;
import java.util.Map;

import org.limp.basework.AbstractSimpleBean;

/**
 * 报文配置接口
 * <p>
 * 包含报文所有配置信息
 * </p>
 * 
 * @author mido
 * 
 */
public class Message extends AbstractSimpleBean {
	private String id;

	private String name;

	private String key;

	private String desc;

	private String contentType;

	private String exceptionMode;

	private boolean encrypt;

	private String encryptMode;

	private String typeId;

	private String typeName;

	private String assembleHandler;

	private String parseHandler;

	private String coreHandler;

	private MessageTemplate template;

	/**
	 * 所有请求字段项(包含模板自带的请求字段项)
	 * 
	 * @return List<MessageRequestItem>
	 */
	public List<MessageRequestItem> getAllRequestItems() {
		return null;
	}

	/**
	 * 所有响应字段项(包含模板自带的响应字段项)
	 * 
	 * @return List<MessageResponseItem>
	 */
	public List<MessageResponseItem> getAllResponseItems() {
		return null;
	}

	/**
	 * 报文特有的响应字段项(不包含模板自带的响应字段项)
	 * 
	 * @return List
	 */
	public List<MessageResponseItem> getResponseItems() {
		return null;
	}

	/**
	 * 报文特有的请求字段项(包含模板自带的请求字段项)
	 * 
	 * @return List
	 */
	public List<MessageRequestItem> getRequestItems() {
		return null;
	}

	/**
	 * 报文需要做特定检查的请求字段项
	 * <p>
	 * 0 checkType,1 checkNull,2 checkRange
	 * </p>
	 * 
	 * @return List
	 */
	public List<MessageRequestItem> getRequestCheckItems(int type) {
		return null;
	}

	/**
	 * 获取报文请求字段项
	 * 
	 * @param idORname
	 *            字段项id或名称
	 * @return MessageRequestItem
	 */
	public MessageRequestItem findRequestItem(String idORname) {
		return null;

	}

	/**
	 * 获取报文响应字段项
	 * 
	 * @param idORname
	 * @return MessageResponseItem 字段项id或名称
	 */
	public MessageResponseItem findResponseItem(String idORname) {
		return null;
	}

	/**
	 * 获取报文组装处理器名称
	 * 
	 * @return String
	 */
	public String getAssembleHandler() {
		return assembleHandler;
	}

	/**
	 * 获取报文类型
	 * 
	 * @return String
	 */
	public String getContentType() {
		return contentType;
	}

	/**
	 * 获取业务核心接口调用处理器名称
	 * 
	 * @return String
	 */
	public String getCoreHandler() {
		return coreHandler;
	}

	/**
	 * 报文说明
	 * 
	 * @return String
	 */
	public String getDesc() {
		return desc;
	}

	/**
	 * 是否为加密报文
	 * 
	 * @return boolean
	 */
	public boolean encrypt() {
		return encrypt;
	}

	/**
	 * 加密方式
	 * 
	 * @return String
	 */
	public String getEncryptMode() {
		return encryptMode;
	}

	/**
	 * 异常处理模式
	 * 
	 * @return String
	 */
	public String getExceptionMode() {
		return exceptionMode;
	}

	/**
	 * 报文主键
	 * 
	 * @return String
	 */
	public String getId() {
		return id;
	}

	/**
	 * 报文唯一标识
	 * 
	 * @return String
	 */
	public String getKey() {
		return key;
	}

	/**
	 * 报文名称
	 * 
	 * @return String
	 */
	public String getName() {
		return name;
	}

	/**
	 * 获取报文解析处理器类名称
	 * 
	 * @return String
	 */
	public String getParseHandler() {
		return parseHandler;
	}

	/**
	 * 报文关联的模板
	 * 
	 * @return MessageTemplate
	 */
	public MessageTemplate getTemplate() {
		return template;
	}

	/**
	 * 报文类型ID
	 * 
	 * @return String
	 */
	public String getTypeId() {
		return typeId;
	}

	/**
	 * 报文类型名称
	 * 
	 * @return String
	 */
	public String getTypeName() {
		return typeName;
	}

	/**
	 * 获取过程控制器类名称列表
	 * 
	 * @return List
	 */
	public List<String> getProcessHandlers() {
		return null;
	}

	public String toScript(String type) {
		return null;
	}

	public void reload(Map map) {

	}
}
